To improve the performance of database processing (e.g., searching), a method in which a plurality of CPUs and disks are simultaneously used to parallelize the processing is often used. As shown in FIG. 6, a shared-nothing database is an architecture for achieving this parallelization. The shared-nothing database includes a plurality of hosts 11 to 14 (information processing devices having CPUs, such as servers) and a plurality of disks 81 to 84. Each host executes one or more database processes (jobs for executing the processing) 20 to 23. In the present invention, the term “database” is not used for data such as database tables, but for the system (including information processing devices, a network, and storage) that executes the database processing.
A characteristic of shared-nothing databases is such that each host 11 to 14 accesses only the disks belonging thereto. For example, the host 11 accesses the disk 81, but does not access the disks 82 to 84. If necessary, the hosts 11 to 14 transfer data to each other to execute the database processing (not shown in the figure). Consequently, the hosts need less synchronization operations, which increase the scalability of the database.
When a database manager 110 of the shared-nothing database receives a query from a client accessing the database, it assigns the processes to the hosts 11 to 14, collects results of the processing of the hosts 11 to 14, and returns the result of the query to the client (not shown in the figures).
HiRDB and DB2 are examples of shared-nothing databases (about DB2, see “IBM DB2 Universal Database Administration Guide: Planning” SC09-4822-00, IBM, “searched on Jul. 1, 2003”, webpage: http://www.linguistik.uni-erlangen.de/tree/pdf/DB2/db2d0e50.pdf, the hosts 11 to 14 shown in FIG. 6 correspond to partitions of DB2).
To extend a shared-nothing database, the hosts 11 to 14 and the disks 81 to 84 are added. Addition of the hosts 13, 14 and the disks 83, 84 surrounded by a dotted-lined, round-cornered rectangle of FIG. 6 is explained in the following.
At the time that the hosts 13, 14 are added, there is no data in the disks 83, 84, so the hosts 13, 14 cannot execute the database processing. As a result, the processing is concentrated on the hosts 11, 12, so efficient parallelization cannot be achieved.
A system described in “IBM DB2 Universal Database Administration Guide: Performance, SC09-4821-00” has a function for redistributing data to solve the above problem. This redistributing function is hereinafter called “re-balancing”. In re-balancing, database processes 20 to 23 transfer data while accessing the disks 81 to 84 in a way that the data becomes equally distributed among the disks 81 to 84. As a result, the performance of the database is improved. In HiRDB (“HiRDB7”, searched on Mar. 8, 2004, webpage: http://www.hitachi.co.jp/Prod/comp/soft1/groval/prod/hirdb/index.html), re-balancing can be done on-line (i.e., without interrupting the processing).
An administrator of the computer system which includes the database uses the system manager 170 to operate this system. In FIG. 6, components of the system are other than the database are not shown. The system manager 170 monitors performance and availability of each component of the system to control each component according to policies specified by the administrator. As an example of a system manager 170, JP1 is known (“Job Management Partner Version 6i”, Hitachi, Ltd., “searched on Jul. 1, 2003”, webpage: http://www.hitachi.co.jp/Prod/comp/soft1/jp1/html/sei.html).
As a shared-data database, a system in which hardware construction can be dynamically changed is known (see U.S. Pat. No. 6,405,284).
In the above-described shared-nothing database, there are the following problems.
A first problem is lack of flexibility for extending the shared-nothing database. To extend a shared-nothing database, the hosts and the disks corresponding thereto need to be simultaneously added. However, in a shared-nothing database, because the hosts and disks cannot be separately added, it is difficult to balance the processing performance (the number of the hosts) and capacity and performance of the storage (the number of the disks).
For example, in FIG. 6, to add the hosts 13, 14, the disks (physical disks) 83, 84 corresponding to these hosts need to be added. At the time of the addition, the disks 83, 84 have no data, so that data need to be redistributed from the disks 81, 82 of the hosts 11, 12 to the newly added disks 83, 84.
In this redistribution, the hosts 11, 12 need to execute redistribution in addition to the database processing, so that sometimes the hosts 11, 12 are overloaded and the database processing is delayed. The redistribution takes a long time; particularly, in large databases, the redistribution may take about a day in some cases. Accordingly, it is difficult to quickly extend a shared-nothing database.
A second problem relates to the time for re-configuring the database. Recently, grid technologies (which include re-configuration) have been used to improve system efficiency and to reduce the costs,. There are various examples of system re-configuration, as follows.                (1) The number of the hosts is increased when a peak of access to, e.g., websites occurs.        (2) Part of the system for on-line processing in the daytime is changed to batch processing in the night (when on-line load is decreased).        (3) The number of the hosts is increased when a peak of the processing load occurs in a specific time (such as sales, concentration of term ends, or successive holidays).        
VPDC is an example of a system that performs these three types of re-configuration (see “VPDC: Virtual Private Data Center (A Flexible and Rapid Workload-Management System)”, Mineyoshi Masuda, Yutaka Yoshimura, Toshiaki Tarui, Toru Shonai, Mamoru Sugie, The 8th IFIP/IEEE International Symposium on Integrated Network Management (IM2003), March 2003.)
However, in system re-configurations, database re-configurations need the addition or reduction of the number of hosts or disks. Re-balancing can be used to perform this re-configuration. However, re-balancing needs a large amount of processing and, as previously mentioned, takes a large amount of time. Particularly in the case of on-line re-balancing, re-balancing and normal database processing are simultaneously executed, so the re-balancing time becomes even longer. Re-balancing is still rarely executed, so the processing time has not been a problem. However, re-balancing is inappropriate if system re-configuration is frequently executed.